import numpy as np

# list1 = [[11, 22, 33,1], [44, 55, 66,2], [77, 88, 99,3]]
# # 将python中的列表数据类型转变成numpy中ndarray类型
# array1 = np.array(list1)  # array()函数创建
# print(array1, type(array1))
#
# # 矩阵有哪些属性
# # 获取矩阵中的维度
# print(f'矩阵的维度是：{np.ndim(array1)}')
#
# print(np.shape(array1))  # 返回的是(行数，列数)
#
# print(np.size(array1))

list1 = [[1, 2, 3], [1, 0, 1], [1, 2, 2]]
list2 = [[2, 2, 3, 1], [1, 1, 0, 1], [1, 1, 1, 1]]

array1 = np.array(list1)
array2 = np.array(list2)
print(array1)
print(array2)

print('-------------------------')
# 两个矩阵相乘 A*B
array3 = array1.dot(array2)
print(array3)
'''
[[7 7 6 6]
 [3 3 4 2]
 [6 6 5 5]]
 
 [7 7 6 6 3 3 4 2 6 6 5 5]
'''
print(f'矩阵中的最大值元素的索引: {np.argmax(array3)}')  # 0
print(f'矩阵中的最小值元素的索引: {np.argmin(array3)}')  # 7
print('-------------------------')
print(f'矩阵元素的平均值为：{np.mean(array3)}')  # 5.0
print('-------------------------')
print(f'矩阵元素的中位数为：{np.median(array3)}')  # 5.5
print('-------------------------')
print(np.cumsum(array3))  # [ 7 14 20 26 29 32 36 38 44 50 55 60]
print('-------------------------')
list1 = [[1, 0, 0], [1, 0, 1], [1, 1, 0]]
array4 = np.array(list1)
print(array4)
res = np.nonzero(array4)
# 返回的是非0的元素的坐标，第一个结果是行索引，第二个结果是列索引
print(res)  # (array([0, 1, 1, 2, 2], dtype=int64), array([0, 0, 2, 0, 1], dtype=int64))
print('-----------------------------------')
print(array4[1][1])  # 0
print('-------------------')
list2 = [[11, 22, 33, 44], [12, 32, 42, 52]]
array5 = np.array(list2)
print(array5)
print('-------------------')
'''
[[33 44]
 [42 52]]
'''
# print(array5[:, 2:])
# print(array5.dtype)
# array5 = array5.astype('float')
# print(array5)
# print(array5.dtype)
array5[:, 2:] = 0
print(array5)
